namespace Rubikev.Common.Data
{
   public interface ISession
   {
      /// <summary>
      /// Opens the session
      /// </summary>
      void Open();

      /// <summary>
      /// Closes the session
      /// </summary>
      void Close();

      /// <summary>
      /// Begins a transaction
      /// </summary>
      void BeginTransaction();

      /// <summary>
      /// Commits a transaction and rolls it back if it fails
      /// </summary>
      void CommitTransaction();
   }
}